package br.com.vagacerta.modelo;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public abstract class Cupom {

	private Long codigoCupom;
	private Vaga vaga;
	private Cancela cancela;
	private TipoServico tipoServico;
	private TipoCupom tipoCupom;
	private long nomeCupom;
	private short statusCupom;
	private Calendar dataEmissaoCupom;

	public Long getCodigoCupom() {
		return codigoCupom;
	}

	public void setCodigoCupom(Long codigoCupom) {
		this.codigoCupom = codigoCupom;
	}

	public Vaga getVaga() {
		return vaga;
	}

	public void setVaga(Vaga vaga) {
		this.vaga = vaga;
	}

	public Cancela getCancela() {
		return cancela;
	}

	public void setCancela(Cancela cancela) {
		this.cancela = cancela;
	}

	public TipoServico getTipoServico() {
		return tipoServico;
	}

	public void setTipoServico(TipoServico tipoServico) {
		this.tipoServico = tipoServico;
	}

	public TipoCupom getTipoCupom() {
		return tipoCupom;
	}

	public void setTipoCupom(TipoCupom tipoCupom) {
		this.tipoCupom = tipoCupom;
	}

	public short getStatusCupom() {
		return statusCupom;
	}

	public void setStatusCupom(short statusCupom) {
		this.statusCupom = statusCupom;
	}

	public Calendar getDataEmissaoCupom() {
		return dataEmissaoCupom;
	}

	public void setDataEmissaoCupom(Calendar dataEmissaoCupom) {
		this.dataEmissaoCupom = dataEmissaoCupom;
	}

	public long getNomeCupom() {
		return nomeCupom;
	}

	public void setNomeCupom(long nomeCupom) {
		this.nomeCupom = nomeCupom;
	}

	public long geraNomeCupom(String ultimoCupom) {
		long numeroCupom;
		
		SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
		Date date = new Date();
		String dataTemp = sdf.format(date);
		
	
		if (ultimoCupom != null && !ultimoCupom.isEmpty()){
			long tempNumero;
			
			tempNumero = Long.parseLong(ultimoCupom.substring(8, 12));
			tempNumero = tempNumero + 1;	
			String tempString =  String.valueOf(tempNumero);
			
			while (tempString.length() < 4){
				
				tempString = "0" + tempString;
			}
			
			
			dataTemp = dataTemp + tempString;
					
			numeroCupom = Long.parseLong(dataTemp);	
			
			return numeroCupom;
		
		}
		
		
		dataTemp = dataTemp + "0001";
		numeroCupom = Long.parseLong(dataTemp);	
		
		return numeroCupom;
			
		
	}
	

}
